/* 
包含的是用户搜索模块相关的接口请求函数
内部调用axios发请求, 返回值是promise
*/

import axios from "axios";
import type { ReqSearchUsersResponse } from "./model/userSearchTypes";
import type { AxiosResponse } from "axios";

// 添加响应拦截器
axios.interceptors.response.use(response => {
  // 返回响应体数据
  return response.data  
})

 // {items: [user1, user2]}
// 搜索用户列表的接口请求函数
export function reqSearchUsers(searchName: string) { 
  /* 
  指定响应体数据, 也就是response.data的类型为ReqSearchUsersResponse
  方式一: get<ReqSearchUsersResponse>
  方式二: get<any, AxiosResponse<ReqSearchUsersResponse>>
  */
 
  // return axios.get<ReqSearchUsersResponse>('https://api.github.com/search/users', {
  // return axios.get<any, AxiosResponse<ReqSearchUsersResponse>>('https://api.github.com/search/users', {
  return axios.get<any, ReqSearchUsersResponse>('https://api.github.com/search/users', {
    params: {
      q: searchName
    }
  })
}